package com.cn.wanxi.springtask.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @ClassName ScheduledTasks
 * @Description
 * @Author JiJiang
 * @Date 2022/9/29 14:23
 * @Version 1.0
 */

@Component
@Slf4j
public class ScheduledTasks {
    // 日期格式化类
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");


    //region  fixedRate 定时任务
    @Scheduled(fixedRate = 5000) //标识每5秒执行下面的方法
    public void reportCurrentTime() {

        log.info("fixedRate Task ==>   当期的时间为:{} 执行当前任务的线程名为: {}"
                , dateFormat.format(new Date())
                , Thread.currentThread().getName());
    }
    //endregion


    //region cron表达式定时任务

    /**
     * @MethodName reportCurrentTimeByCron
     * @Description 使用cron表达式
     * @Param []
     * @Return void
     **/
    //spring里面的cron表达式默认不支持 7 位的表达式，即不能指定 年
    @Scheduled(cron = "8 * * * * * ")//每8s输出一次
    public void reportCurrentTimeByCron() {

        log.info("corn Task ==>   当期的时间为:{} 执行当前任务的线程名为: {}"
                , dateFormat.format(new Date())
                , Thread.currentThread().getName());

    }
    //endregion


}
